﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Dot5Demo.MarkDown
{
    public class CSSConsts
    {
        #region 默认CSS样式

        public const string DefaultCss = @"
        body {
            font-family: sans-serif;
            font-size: 14px;
            line-height: 1.6;
            padding-top: 10px;
            padding-bottom: 10px;
            background-color: white;
            padding: 30px;
        }

        body>*:first-child {
            margin-top: 0 !important;
        }

        body>*:last-child {
            margin-bottom: 0 !important;
        }

        a {
            color: #4183C4;
        }

        a.absent {
            color: #cc0000;
        }

        a.anchor {
            display: block;
            padding-left: 30px;
            margin-left: -30px;
            cursor: pointer;
            position: absolute;
            top: 0;
            left: 0;
            bottom: 0;
        }

        h1,
        h2,
        h3,
        h4,
        h5,
        h6 {
            margin: 20px 0 10px;
            padding: 0;
            font-weight: bold;
            -webkit-font-smoothing: antialiased;
            cursor: text;
            position: relative;
        }

        h1:hover a.anchor,
        h2:hover a.anchor,
        h3:hover a.anchor,
        h4:hover a.anchor,
        h5:hover a.anchor,
        h6:hover a.anchor {
            /* no-repeat 10px center; */
            text-decoration: none;
        }

        h1 tt,
        h1 code,
        h2 tt,
        h2 code,
        h3 tt,
        h3 code,
        h4 tt,
        h4 code,
        h5 tt,
        h5 code，h6 tt,
        h6 code {
            font-size: inherit;
        }

        h1 {
            font-size: 28px;
            color: black;
        }

        h2 {
            font-size: 24px;
            border-bottom: 1px solid #cccccc;
            color: black;
        }

        h3 {
            font-size: 18px;
        }

        h4 {
            font-size: 16px;
        }

        h5 {
            font-size: 14px;
        }

        h6 {
            color: #777777;
            font-size: 14px;
        }

        p,
        blockquote,
        ol,
        dl,
        table,
        pre {
            margin: 15px 0;
        }

        ul {
            margin: 0;
        }

        hr {
            background: transparent repeat-x 0 0;
            border: 0 none;
            color: #cccccc;
            height: 4px;
            padding: 0;
        }

        body>h2:first-child {
            margin-top: 0;
            padding-top: 0;
        }

        body>h1:first-child {
            margin-top: 0;
            padding-top: 0;
        }

        body>h1:first-child+h2 {
            margin-top: 0;
            padding-top: 0;
        }

        body>h3:first-child,
        body>h4:first-child,
        body>h5:first-child,
        body>h6:first-child {
            margin-top: 0;
            padding-top: 0;
        }

        a:first-child h1,
        a:first-child h2,
        a:first-child h3,
        a:first-child h4,
        a:first-child h5,
        a:first-child h6 {
            margin-top: 0;
            padding-top: 0;
        }

        h1 p,
        h2 p,
        h3 p,
        h4 p,
        h5 p,
        h6 p {
            margin-top: 0;
        }

        li p.first {
            display: inline-block;
        }

        ul,
        ol {
            padding-left: 30px;
        }

        ul:first-child,
        ol:first-child {
            margin-top: 0;
        }

        ul:last-child,
        ol:last-child {
            margin-bottom: 0;
        }

        dl {
            padding: 0;
        }

        dl dt {
            font-size: 14px;
            font-weight: bold;
            font-style: italic;
            padding: 0;
            margin: 15px 0 5px;
        }

        dl dt:first-child {
            padding: 0;
        }

        dl dt> :first-child {
            margin-top: 0;
        }

        dl dt> :last-child {
            margin-bottom: 0;
        }

        dl dd {
            margin: 0 0 15px;
            padding: 0 15px;
        }

        dl dd> :first-child {
            margin-top: 0;
        }

        dl dd> :last-child {
            margin-bottom: 0;
        }

        blockquote {
            border-left: 4px solid #dddddd;
            padding: 0 15px;
            color: #777777;
        }

        blockquote> :first-child {
            margin-top: 0;
        }

        blockquote> :last-child {
            margin-bottom: 0;
        }

        table {
            border-collapse: collapse;
            padding: 0;
        }

        table tr {
            border-top: 1px solid #cccccc;
            background-color: white;
            margin: 0;
            padding: 0;
        }

        table tr:nth-child(2n) {
            background-color: #f8f8f8;
        }

        table tr th {
            font-weight: bold;
            border: 1px solid #cccccc;
            text-align: left;
            margin: 0;
            padding: 6px 13px;
        }

        table tr td {
            border: 1px solid #cccccc;
            text-align: left;
            margin: 0;
            padding: 6px 13px;
        }

        table tr th:first-child,
        table tr td:first-child {
            margin-top: 0;
        }

        table tr th:last-child,
        table tr td:last-child {
            margin-bottom: 0;
        }

        img {
            max-width: 100%;
        }

        span.frame {
            display: block;
            overflow: hidden;
        }

        span.frame>span {
            border: 1px solid #dddddd;
            display: block;
            float: left;
            overflow: hidden;
            margin: 13px 0 0;
            padding: 7px;
            width: auto;
        }

        span.frame span img {
            display: block;
            float: left;
        }

        span.frame span span {
            clear: both;
            color: #333333;
            display: block;
            padding: 5px 0 0;
        }

        span.align-center {
            display: block;
            overflow: hidden;
            clear: both;
        }

        span.align-center>span {
            display: block;
            overflow: hidden;
            margin: 13px auto 0;
            text-align: center;
        }

        span.align-center span img {
            margin: 0 auto;
            text-align: center;
        }

        span.align-right {
            display: block;
            overflow: hidden;
            clear: both;
        }

        span.align-right>span {
            display: block;
            overflow: hidden;
            margin: 13px 0 0;
            text-align: right;
        }

        span.align-right span img {
            margin: 0;
            text-align: right;
        }

        span.float-left {
            display: block;
            margin-right: 13px;
            overflow: hidden;
            float: left;
        }

        span.float-left span {
            margin: 13px 0 0;
        }

        span.float-right {
            display: block;
            margin-left: 13px;
            overflow: hidden;
            float: right;
        }

        span.float-right>span {
            display: block;
            overflow: hidden;
            margin: 13px auto 0;
            text-align: right;
        }

        pre,
        code,
        tt {
            font-size: 12px;
        }

        code,
        tt {
            margin: 0;
            padding: 0 5px;
            white-space: nowrap;
            border: 1px solid #eaeaea;
            background-color: #f8f8f8;
            border-radius: 3px;
        }

        pre code {
            margin: 0;
            padding: 0;
            white-space: pre;
            border: none;
            background: transparent;
        }

        .highlight pre {
            background-color: #f8f8f8;
            border: 1px solid #cccccc;
            font-size: 13px;
            line-height: 19px;
            overflow: auto;
            padding: 6px 10px;
            border-radius: 3px;
        }

        pre {
            background-color: #f8f8f8;
            border: 1px solid #cccccc;
            font-size: 13px;
            line-height: 19px;
            overflow: auto;
            padding: 6px 10px;
            border-radius: 3px;
        }

        pre code,
        pre tt {
            background-color: transparent;
            border: none;
        }
";

        #endregion

        #region KaTex Script
        public const string KatexScript = @"
<link rel=""stylesheet"" href=""katex/katex.min.css"">
<!-- The loading of KaTeX is deferred to speed up page rendering -->
<script defer src=""katex/katex.min.js""></script>
<!-- To automatically render math in text elements, include the auto-render extension: -->
<script defer src=""katex/contrib/auto-render.min.js""></script>
<script>
    document.addEventListener(""DOMContentLoaded"", function()
    {
        renderMathInElement(document.body, {
        // customised options
        // • auto-render specific keys, e.g.:
        delimiters:
            [
                { left: '$$', right: '$$', display: true},
                { left: '$', right: '$', display: false},
                { left: '\\(', right: '\\)', display: false},
                { left: '\\[', right: '\\]', display: true}
            ],
            // • rendering keys, e.g.:
            throwOnError: false
        });
    });
</script>
";
        #endregion

        #region MathJax Script

        public const string MathJaxScript = @"

";

        #endregion
    }
}
